home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / graphics / gnuplot / contrib / hanna / xlibtest.c < prev    next >
C/C++ Source or Header  |  1992-04-16  |  2KB  |  88 lines

  1. /************************************************************/
  2. /*                                                          */
  3. /*  xlibtest - a demonstration of the xlib terminal mode    */
  4. /*                                                          */
  5. /*  by gregg hanna (gregor@kafka.saic.com)                  */
  6. /*                                                          */
  7. /************************************************************/
  8. #include <X11/Intrinsic.h>
  9. #include <Xm/Xm.h>
  10. #include <Xm/DrawingA.h>
  11. #include <Xm/PushB.h>
  12.  
  13. #include "gnulib_x11.h"
  14.  
  15. Pixel *colors;
  16.  
  17. main(argc, argv)
  18.      int    argc;
  19.      char    *argv[];
  20. {
  21.     
  22.   Widget toplevel, da, bu, bu2;
  23.   Arg    args[12];
  24.   int    m;
  25.   Display *d;
  26.   Pixel  black, white;
  27.   void ReadIt();
  28.   void QuitIt();
  29.   void Resize();
  30.  
  31.   toplevel = XtInitialize(argv[0], "testlib", NULL, 0, &argc, argv);
  32.  
  33.   d = XtDisplay(toplevel);
  34.  
  35.   black = BlackPixel(d,DefaultScreen(d));
  36.   white = WhitePixel(d,DefaultScreen(d));
  37.  
  38.   m = 0;
  39.   XtSetArg(args[m],XmNwidth,600); m++;
  40.   XtSetArg(args[m],XmNheight,400); m++;
  41.   XtSetArg(args[m],XmNresizePolicy,XmRESIZE_NONE); m++;
  42.   XtSetArg(args[m],XmNforeground,black); m++;
  43.   XtSetArg(args[m],XmNbackground,white); m++;
  44.   da = XmCreateDrawingArea(toplevel,"Drawing Area",args,m);
  45.   XtAddCallback(da,XmNresizeCallback,Resize,NULL);
  46.   XtManageChild(da);
  47.  
  48.   m = 0;
  49.   XtSetArg(args[m],XmNx,5); m++;
  50.   XtSetArg(args[m],XmNy,5); m++;
  51.   bu = XmCreatePushButton(da,"Quit",args,m);
  52.   XtManageChild(bu);
  53.   XtAddCallback(bu,XmNactivateCallback,QuitIt,NULL);
  54.  
  55.   m = 0;
  56.   XtSetArg(args[m],XmNx,50); m++;
  57.   XtSetArg(args[m],XmNy,5); m++;
  58.   bu2 = XmCreatePushButton(da,"Plot/Read",args,m);
  59.   XtManageChild(bu2);
  60.   XtAddCallback(bu2,XmNactivateCallback,ReadIt,da);
  61.  
  62.   XtRealizeWidget(toplevel);
  63.  
  64.   colors = GP_AllocColor(d,GP_DEFAULT);
  65.  
  66.   XtMainLoop();
  67. }
  68.  
  69. void ReadIt(w,da,junk)
  70.     Widget w;
  71.     Widget da;
  72.     caddr_t junk;
  73. {
  74.   system("gnuplot xlibtest.demo 2>&1 1>/dev/null");
  75.   GP_PlotFromFile("xlibtest.out",XtDisplay(da),XtWindow(da),colors,NULL);
  76. }
  77.  
  78. void Resize(da,hmm1,hmm2)
  79.     Widget da;
  80.     caddr_t hmm1, hmm2;
  81. {
  82.   XClearWindow(XtDisplay(da),XtWindow(da));
  83.   GP_PlotFromFile("xlibtest.out",XtDisplay(da),XtWindow(da),colors,NULL);
  84. }
  85.  
  86. void QuitIt() { exit(0); }
  87.  
  88.